Remove more C casts
authorRobert Lipe <robertlipe@gpsbabel.org>
Sat, 7 Jul 2018 04:51:44 +0000 (23:51 -0500)
committerRobert Lipe <robertlipe@gpsbabel.org>
Sat, 7 Jul 2018 04:51:44 +0000 (23:51 -0500)
Remove some senseless casts to ints, explicitly avoid const-ified queue
iterators.

igc.cc

diff --git a/igc.cc b/igc.cc
index 2116ac4f3838a987ed206d0e7ef01cba3d0af9bb..b0e3df73853abce027d61ac378f1deeb79c6f54d 100644 (file)
--- a/igc.cc
+++ b/igc.cc
@@ -891,17 +891,25 @@ static void wr_track()
       printf(MYNAME ": adjusting time by %ds\n", time_adj);
     }
     // Iterate through waypoints in both tracks simultaneously
-    QUEUE_FOR_EACH(&gnss_track->waypoint_list, elem, tmp) {
+    queue* melem;
+    queue* mtmp;
+    QUEUE_FOR_EACH(&gnss_track->waypoint_list, melem, mtmp) {
       // FIXME(NEW_Q): the excessive casting of the iterators is gross. Rethink.
-      double pres_alt = interpolate_alt(pres_track, ((Waypoint*) elem)->GetCreationTime().toTime_t() + time_adj);
-      wr_fix_record(((Waypoint*) elem), (int) pres_alt, (int) ((Waypoint*)elem)->altitude);
+      void* vwaypointp = static_cast<void*>(melem);
+      Waypoint* wpt = static_cast<Waypoint*>(vwaypointp);
+      double pres_alt = interpolate_alt(pres_track, wpt->GetCreationTime().toTime_t() + time_adj);
+      wr_fix_record(wpt, pres_alt, wpt->altitude);
     }
   } else {
     if (pres_track) {
       // Only the pressure altitude track was found so generate fix
       // records from it alone.
-      QUEUE_FOR_EACH(&pres_track->waypoint_list, elem, tmp) {
-        wr_fix_record((Waypoint*) elem, (int)((Waypoint*) elem)->altitude, (int) unknown_alt);
+      queue* melem;
+      queue* mtmp;
+      QUEUE_FOR_EACH(&pres_track->waypoint_list, melem, mtmp) {
+        void* vwaypointp = static_cast<void*>(melem);
+        Waypoint* wpt = static_cast<Waypoint*>(vwaypointp);
+        wr_fix_record(wpt, wpt->altitude, unknown_alt);
       }
     } else if (gnss_track) {
       // Only the GNSS altitude track was found so generate fix